package com.css.fxfzysx.modules.lifeline.repository;

import com.css.fxfzysx.modules.lifeline.entity.newEntity.SmxCableRouteEntity;
import com.css.fxfzysx.modules.lifeline.entity.newEntity.SmxOverheadLineEntity;
import com.css.fxfzysx.modules.lifeline.entity.newEntity.SmxTvTowerEntity;
import com.css.fxfzysx.modules.lifeline.entity.newEntity.SmxVersionEntity;
import com.css.fxfzysx.modules.lifeline.param.PageParam;
import com.css.fxfzysx.modules.lifeline.param.RegionParam;
import com.css.fxfzysx.modules.lifeline.vo.LifelineIdVo;
import com.css.fxfzysx.modules.lifeline.vo.fxqh.EvaluationResults;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public interface LifelineEngineeringRepository {
    List<SmxVersionEntity> getByRegionAndUserAndType(RegionParam param, String name);

    void deleteOldVersionData(String versionId, Integer type,Integer bridgeType);

    Map<String, Object> getVersionCode(RegionParam param);

    SmxVersionEntity getById(String versionId);

    void saveSmxVersion(SmxVersionEntity entity);

    void updateSmxVersion(SmxVersionEntity entity);

    Map<String, Object> getLifelineDataSource(PageParam param);

    Map<String, Object> getByTypeAndVersionId(int page, int size,String versionId,Integer type);

    void deleteByTypeAndId(String id, Integer type);

    void updateById(Integer type,Object value,String userId);

    List<EvaluationResults> getAnalysisByVersionId(Integer type, String id);

    boolean saveOverheadLine(SmxOverheadLineEntity overheadLineEntity);

    boolean saveCableRoute(SmxCableRouteEntity cableRouteEntity);

    boolean saveTvTower(SmxTvTowerEntity tvTowerEntity);

    void deleteByTypeAndVersionId(String versionId);

    void deleteValueByTypeAndVersionId(String versionId, Integer type,Integer bridgeType);

    void updateMainCalculationStatusByTableId(String tableId);

    void deleteMainByVersionId(String versionId);

    Map<String, Object> getBasicByIdAndType(Integer type, String id);

    int getCalculationResultsByVersionId(String id);

    Integer getAllCalculationResultsByVersionId(String id);

    LifelineIdVo getTableIdByIdAndType(String dataId, Integer type);

    void deleteMainByTableId(String tableId);

    void deleteByVersionId(String versionId);

    void deleteZhByVersionId(String versionId);

    void deleteGhByTableId(String id);

    void deleteZhByTableId(String id);

    int getDataCountByVersionId(Integer type,String versionId);

    void updateBridgeLineById(Object value, String userID);

    void deleteLineById(String id);

    int getBridgeLineCountByVersionId(String versionId);

    List<String> getVectorDataIdsByVersionId(String versionId, Integer type);

    ArrayList<Object> getByTypeAndGeomAndVersionId(String geom, Integer type, String versionId, Integer viewingMethods);
}
